﻿using System.Runtime.Serialization;
using TecBaseObjects.Base;

namespace TecBaseObjects.Models {

    public class CashSaleProductsModel : MyBaseModel {

        #region Members

        private string categorie;
        private string categorieShort;
        private double contributionMargin;
        private double costPrice;
        private double effort;
        private double hour;
        private string itemNumber;
        private double listPrice;
        private string manufacturer;
        private int manufacturerOrgKey;
        private int productID;
        private string productName;
        private string provider;
        private int providerOrgKey;
        private double rabatt1;
        private double rabatt2;
        private double salesPrice;
        private double skonto;
        private string subCategorie;
        private string subCategorieShort;
        private double surCharge;
        private byte taxCode;
        private string unity;

        #endregion

        #region Constructor

        public CashSaleProductsModel() {
        }

        #endregion

        #region Properties

        [DataMember]
        public string Categorie {
            get { return this.categorie; }
            set {
                if (this.categorie == value) {
                    return;
                }
                this.categorie = value;
                OnPropertyChanged(() => Categorie);
            }
        }

        [DataMember]
        public string CategorieShort {
            get { return this.categorieShort; }
            set {
                if (this.categorieShort == value) {
                    return;
                }
                this.categorieShort = value;
                OnPropertyChanged(() => CategorieShort);
            }
        }

        [DataMember]
        public double ContributionMargin { //Deckungsbeitrag
            get { return this.contributionMargin; }
            set {
                if (this.contributionMargin == value) {
                    return;
                }
                this.contributionMargin = value;
                OnPropertyChanged(() => ContributionMargin);
            }
        }

        [DataMember]
        public double CostPrice { //Einkaufspreis
            get { return this.costPrice; }
            set {
                if (this.costPrice == value) {
                    return;
                }
                this.costPrice = value;
                OnPropertyChanged(() => CostPrice);
            }
        }

        [DataMember]
        public double Effort {
            get { return this.effort; }
            set {
                if (this.effort == value) {
                    return;
                }
                this.effort = value;
                OnPropertyChanged(() => Effort);
            }
        }

        [DataMember]
        public double Hour {
            get { return this.hour; }
            set {
                if (this.hour == value) {
                    return;
                }
                this.hour = value;
                OnPropertyChanged(() => Hour);
            }
        }

        [DataMember]
        public string ItemNumber {
            get { return this.itemNumber; }
            set {
                if (this.itemNumber == value) {
                    return;
                }
                this.itemNumber = value;
                OnPropertyChanged(() => ItemNumber);
            }
        }

        [DataMember]
        public double ListPrice {
            get { return this.listPrice; }
            set {
                if (this.listPrice == value) {
                    return;
                }
                this.listPrice = value;
                OnPropertyChanged(() => ListPrice);
            }
        }

        [DataMember]
        public string Manufacturer { //Hersteller
            get { return this.manufacturer; }
            set {
                if (this.manufacturer == value) {
                    return;
                }
                this.manufacturer = value;
                OnPropertyChanged(() => Manufacturer);
            }
        }

        public int ManufacturerOrgKey {
            get { return this.manufacturerOrgKey; }
            set {
                if (this.manufacturerOrgKey == value) {
                    return;
                }
                this.manufacturerOrgKey = value;
                OnPropertyChanged(() => ManufacturerOrgKey);
            }
        }

        public int ProductID {
            get { return this.productID; }
            set {
                if (this.productID == value) {
                    return;
                }
                this.productID = value;
                OnPropertyChanged(() => ProductID);
            }
        }

        public string ProductName {
            get { return this.productName; }
            set {
                if (this.productName == value) {
                    return;
                }
                this.productName = value;
                OnPropertyChanged(() => ProductName);
            }
        }
                 
        public string Provider { //Lieferant
            get { return this.provider; }
            set {
                if (this.provider == value) {
                    return;
                }
                this.provider = value;
                OnPropertyChanged(() => Provider);
            }
        }

        public int ProviderOrgKey {
            get { return this.providerOrgKey; }
            set {
                if (this.providerOrgKey == value) {
                    return;
                }
                this.providerOrgKey = value;
                OnPropertyChanged(() => ProviderOrgKey);
            }
        }

        public double Rabatt1 {
            get { return this.rabatt1; }
            set {
                if (this.rabatt1 == value) {
                    return;
                }
                this.rabatt1 = value;
                OnPropertyChanged(() => Rabatt1);
            }
        }

        public double Rabatt2 {
            get { return this.rabatt2; }
            set {
                if (this.rabatt2 == value) {
                    return;
                }
                this.rabatt2 = value;
                OnPropertyChanged(() => Rabatt2);
            }
        }

        public double SalesPrice {
            get { return this.salesPrice; }
            set {
                if (this.salesPrice == value) {
                    return;
                }
                this.salesPrice = value;
                OnPropertyChanged(() => SalesPrice);
            }
        }

        public double Skonto {
            get { return this.skonto; }
            set {
                if (this.skonto == value) {
                    return;
                }
                this.skonto = value;
                OnPropertyChanged(() => Skonto);
            }
        }

        public string SubCategorie {
            get { return this.subCategorie; }
            set {
                if (this.subCategorie == value) {
                    return;
                }
                this.subCategorie = value;
                OnPropertyChanged(() => SubCategorie);
            }
        }

        public string SubCategorieShort {
            get { return this.subCategorieShort; }
            set {
                if (this.subCategorieShort == value) {
                    return;
                }
                this.subCategorieShort = value;
                OnPropertyChanged(() => SubCategorieShort);
            }
        }

        public double SurCharge { //Preisaufschlag
            get { return this.surCharge; }
            set {
                if (this.surCharge == value) {
                    return;
                }
                this.surCharge = value;
                OnPropertyChanged(() => SurCharge);
            }
        }

        public byte TaxCode {
            get { return this.taxCode; }
            set {
                if (this.taxCode == value) {
                    return;
                }
                this.taxCode = value;
                OnPropertyChanged(() => TaxCode);
            }
        }

        public string Unity {
            get { return this.unity; }
            set {
                if (this.unity == value) {
                    return;
                }
                this.unity = value;
                OnPropertyChanged(() => Unity);
            }
        }

        #endregion

    }
}
